package com.smq.chatserver.bean.message

import com.baomidou.mybatisplus.annotation.IdType
import com.baomidou.mybatisplus.annotation.TableField
import com.baomidou.mybatisplus.annotation.TableId
import com.smq.chatserver.bean.User
import lombok.Data

data class ImMessage(
    var id: String,// 消息id, 由服务器生成
    var from: String, // 消息的发送方
    var to: String, // 消息的接收方, ope = 0 则是用户id, ope = 1 则是群id
    var ope: Int,// 仅可传入 0 或 1，0：单聊消息，1：群消息
    var type: Int,// 消息类型
    var body: Any,// 消息内容
    var time: Long,// 消息时间, 毫秒
    var user: User? = null,// 发消息用户的数据
)

@Data
data class Message(
    @TableId(type = IdType.INPUT)
    var id: String,// 消息id, 由服务器生成
    @TableField(value = "`from`")
    var from: String, // 消息的发送方
    @TableField(value = "`to`")
    var to: String, // 消息的接收方, ope = 0 则是用户id, ope = 1 则是群id
    var ope: Int,// 仅可传入 0 或 1，0：单聊消息，1：群消息
    var type: Int,// 消息类型
    var bodyId: String,// 消息内容
    var time: Long,// 消息时间, 毫秒
) {
    fun textMessageConvert(absMessage: TextMessage): ImMessage {
        val m = ImMessage(
            id = id,
            from = from,
            to = to,
            ope = ope,
            type = type,
            body = absMessage,
            time = time,
        )
        return m
    }
}
